Game system and image creating method

ABSTRACT

There is provided a game system and program which can realize video filtering such as gamma correction or an image focused as if it is a real view. The information (R, G, B or Z value) of an original image is set as an index number in a lookup table (LUT) for index color texture-mapping; LUT is used to perform texture mapping on a polygon having a size equal to a size of a display screen (or a size of a block obtained by dividing the display screen into blocks) for implementing gamma correction or the like. The Z value of each pixel in the original image is set as an index number in LUT for index color texture-mapping to perform texture mapping on a virtual object. An alpha value is set to a value corresponding the Z value of each pixel in the original image, and the original image is blended with its defocused image. Adjustment data for adjusting the brightness of a monitor is set based on operational data inputted by a player through a game controller. The set adjustment data is saved in a saved information storage device and used to transform the original image.

TECHNICAL FIELD

[0001] The present invention relates to a game system, program and image generation method.

BACKGROUND ART

[0002] There is known an image generating system which can generate an image as viewed within a virtual three-dimensional or object space from a given viewpoint. Such a system is very popular since one can experience a so-called virtual reality through it. Now considering an image generating system for playing a racing game, a player can enjoy a three-dimensional shooting game by manipulating a racing car (or object) to run in an object space and to compete against racing cars which are manipulated by other players and computer.

[0003] In such a game system, it is desirable that a transformation known as gamma correction relating to an image is performed to correct the non-linear characteristics of a monitor (or display section).

[0004] There are known two techniques for realizing such a gamma correction.

[0005] A first technique has provided a gamma-correction lookup table (LUT) on a main memory 802, as shown in FIG. 1A. CPU 800 (or a software running on the CPU) reads the color information (RGB) of the respective pixels in an original image out of a frame buffer 808 in VRAM 806. The gamma-correction LUT is then referred to based on the read color information to obtain the gamma-corrected color information. Next, the gamma-corrected color information so obtained is written in the corresponding pixel in the frame buffer. Such a procedure will be repeated for all the pixels in the original image.

[0006] On the other hand, a second technique provides a gamma-correction circuit 814 located downstream of a drawing processor 812. as shown in FIG. 1B, which is operated under control of the CPU 810 and designed to realize the gamma correction in hardware. The gamma-correction circuit 814 performs the gamma correction relative to the color information generated by the drawing processor 812, the gamma-corrected color information being then outputted toward a monitor 816.

[0007] However, the first technique of FIG. 1A requires a software running on the CPU 800 for performing all the procedures of reading the color information out of the frame buffer 808, referring the gamma-correction LUT 804, reading the color information out of the gamma-correction LUT 804 and writing the read color information back to the frame buffer 808. Thus, the process will not be executed at any higher speed and it is difficult to complete the gamma correction for all the pixels in a display screen within one frame. Moreover, the processing load in the CPU 800 becomes very heavy. This adversely affects any other processing.

[0008] On the other hand, the second technique of FIG. 1B can realize the gamma correction with a higher speed since the gamma-correction circuit 814 used is of dedicated hardware. Therefore, the gamma correction for all the pixels in a display screen can easily be accomplished within one frame. Since the processing load of the CPU 810 is reduced, furthermore, the other processing will not adversely be affected by the gamma correction.

[0009] However, the second technique of FIG. 1B separately requires the gamma correction circuit 814 which is of dedicated hardware. Thus, the game system will be increased in scale, leading to increase of the manufacturing cost.

[0010] In domestic game systems, particularly, the severe reduction of cost is required to make the products more popular Thus, most domestic game systems have not included such a hardware gamma-correction circuit as shown in FIG. 1B. To realize the gamma correction in the domestic game systems, they cannot but take such a first technique as shown in FIG. 1A.

[0011] Since it is difficult in the first technique to complete the gamma correction for the entire screen within one frame as described, however, it will adversely affect the other processing. As a result, the domestic game systems could not but abandon the adoption of the gamma correction itself.

[0012] The game systems of the prior art have a further problem described below.

[0013] An image generated by any prior art game system was not focused depending on the distance from a viewpoint, unlike the image viewed through human eyes. Thus, the image was represented such that all the objects in the image were focused.

[0014] However, such an image is so unnatural that the human will never see in its daily life.

[0015] To provide more realistic images, it is therefore desirable that they are generated to have objects which are focused depending on the distance between the viewpoint and the objects, the direction of line-of-sight and soon. However, when defocused images are generated by computing the distance between each of the individual objects and the viewpoint in the game space to provide the necessary degree of defocusing for every object, the processing load will hugely be increased.

[0016] In a game system which is required to generate images corresponding to the viewpoint which varies in real time by using a limited hardware resource, it is important that such images being focused as if it were real views are generated with reduced processing load.

DISCLOSURE OF THE INVENTION

[0017] In view of the aforementioned problems, an objective of the present invention is to provide a game system, program and image generating method which can implement video filtering such as gamma correction with reduced processing load.

[0018] Another objective of the present invention is to provide a game system, program and image generating method which can generate more realistic images with reduced processing load. More particularly, it is to provide a game system, program and image generating method which can generate an image focused like a real view with reduced processing load.

[0019] To this end, the present invention provides a game system which generates an image, comprising: means which sets image information of an original image as an index number in a lookup table for index color texture-mapping; and means which transforms the image information of the original image by performing index color texture-mapping on a virtual object by using the lookup table in which the image information of the original image is set as the index number. The present invention also provides a computer-usable information storage medium comprising a program for a computer to realize the above means. The present invention further provides a computer-usable program (including a program embodied in a carrier wave) comprising a processing routine for a computer to realize the above-described means.

[0020] According to the present invention, the lookup table in which the image information of the original image is set as an index number is used to perform the index color texture-mapping on a virtual object for transforming the image information of the original image. According to the present invention, thus, the index color texture-mapping function originally possessed by the game system (or image generating system) can effectively be used to perform the transformation of the image information of the original image. The video filtering processes such as gamma correction can be executed with higher speed without additional hardware. Moreover, the transformation of image information of the entire display screen can more easily be performed.

[0021] The image information of the original image may be one drawn in a drawing region (such as a frame buffer or an additional buffer) and contain color information, an alpha (α) value. depth value or the like. The transformation of the image information of the original image is not limited to gamma correction, and any of various other types of transformation can be considered. The transformed image information obtained by setting the image information of the original image as an index number in the lookup table is not limited to the color information. The virtual object may be one or more primitive surfaces (such as polygons or free-form surfaces).

[0022] In the game system, information storage medium or program of the present invention, the virtual object may be a polygon having a size equal to a size of a display screen.

[0023] In this configuration, the image information of the original image of the entire display screen can be transformed by one or several times of texture mapping.

[0024] In the game system, information storage medium or program of the present invention, the virtual object may be a polygon having a size equal to a size of a block obtained by dividing a display screen into blocks.

[0025] In this configuration, the region for the drawing of the virtual object can be reduced in size to save the usable capacity of a storage section.

[0026] In the same system, information storage medium or program of the present invention, the lookup table may be used to perform gamma correction, negative/positive inversion, posterization, solarization, binarization, monotone filtering or sepia filtering on the image information of the original image.

[0027] In this configuration, an image obtained by performing various image effects on the original image can be generated. This improves the variety in the generated image. Note that the transformation of image information according to the present invention is not limited to gamma correction, negative/positive inversion, posterization, solarization, binarization, monotone filtering and sepia filtering.

[0028] In the game system, information storage medium or program of the present invention, one of color components of color information in the image information of the original image may be set as the index number in the lookup table for the transformation of the color information; and the game system, information storage medium or program may further comprise means (or a program or a processing routine for a computer to realize the means) which performs masking on other color components of the transformed color information to avoid being drawn in the drawing region.

[0029] In this configuration, while using the lookup table for index color texture-mapping which outputs a plurality of values relative to one input value, image transformation such as the gamma correction which outputs one value relative to one input value can be performed.

[0030] The game system, information storage medium or program of the present invention may further comprise means (or a program or processing routine for a computer to realize the means) which blends:

[0031] transformed color information obtained by setting the K-th color component of the color information in the image information of the original image as the index number in the lookup table;

[0032] transformed color information obtained by setting the L-th color component of the color information as the index number in the lookup table; and

[0033] transformed color information obtained by setting the M-th color component of the color information as the index number in the lookup table.

[0034] This configuration can implement image transformation in which an image having color information obtained by blending K-, L- and M-th color components is generated relative to the input of the K-th color component, for example.

[0035] In the game system, information storage medium or program of the present invention, an alpha value corresponding to the image information of the original image may be generated by the transformation of the image information of the original image.

[0036] In this configuration, if the image information of the original image is a depth value, an alpha value of each pixel can be set at a value corresponding to the depth value of each pixel in the original image. Thus, an original image can be blended with a defocused image of the original image based on the alpha values set for the respective pixels. This also enables representation of the depth of field.

[0037] By utilizing the generated alpha values, the masking or the like corresponding to the values of the image information of the original image can be carried out.

[0038] In the game system, information storage medium or program of the present invention, a depth value in the image information of the original image may be set as the index number in the lookup table.

[0039] In this configuration, various types of information can be provided as the image information to be set as the index number in the lookup table.

[0040] The present invention further provides a game system which generates an image, comprising: means which sets a depth value of each pixel of an original image as an index number in a lookup table for index color texture-mapping; means which sets an alpha value of each pixel to a value corresponding to the depth value of each pixel of the original image by performing index color texture-mapping on a virtual object by using the lookup table in which the depth value of each pixel of the original image is set as the index number; and means which blends the original image with a defocused image of the original image based on the alpha value of each pixel. The present invention further provides a computer-usable information storage medium comprising a program for a computer to realize the above means. The present invention further provides a computer-usable program (including a program embodied in a carrier wave) comprising a processing routine for a computer to realize the above-described means.

[0041] According to the present invention, the lookup table in which the depth value for each pixel in the original image is set as an index number is used to perform index color texture-mapping on a virtual object and to set an alpha value for each pixel to a value corresponding to the depth value for each pixel in the original image. Thus, the present invention can effectively use the index color texture-mapping function originally possessed by the game system (or image generating system) for transforming the depth value into the alpha value. The transformation of the depth value can easily be carried out for the entire display screen with increased speed and without addition of any hardware.

[0042] According to the present invention, an original image can be combined with a defocused image of the original image based on the alpha values set at values corresponding to the depth values for pixels in the original image. Therefore, the rate of blending the original image with the defocused image or other factors can be changed depending on the depth value, thus enabling representation of the depth of field or the like.

[0043] Note that the alpha value is information stored in association with each pixel and may be one other than the color information, for example. The depth value may be larger as the distance from the viewpoint (or a virtual camera) is shorter or longer. The technique of the defocused image which is blended with the original image may be any of various techniques. The blending process using an alpha values is not limited to the alpha (α)-blending in narrow sense.

[0044] In the game system, information storage medium or program of the present invention, the depth value of each pixel of the original image may be transformed into a second depth value formed of lower bits I to J which are positioned lower than the most significant bit of the depth value; and the second depth value may be set as the index number in the lookup table for index color texture-mapping.

[0045] In this way, the effective number of partitions for the alpha value (or the effective number of steps for the threshold value of the depth value) can be increased. For example, the degree of defocusing in an object located close to the focus (or a gazing point) of a virtual camera can be controlled with improved accuracy by multi-step threshold values. Therefore, the quality of the generated image can be improved.

[0046] In the game system, information storage medium or program of the present invention, the second depth value may be clamped into a given value depending on a bit value other than the bits I to J in the depth value.

[0047] If a bit other than the bits I to J in the depth value becomes 1, this configuration can generate a consistent image. The given value may be any of various values such as the maximum or minimum values of the second depth value, or a value in which a train of higher bits of the second depth value set to 1 and so on.

[0048] In the game system, information storage medium or program of the present invention, the depth value may be set as an index number in a lookup table for index color texture-mapping; and the depth value may be transformed into the second depth value by performing index color texture-mapping on a virtual object by using the lookup table.

[0049] In this configuration, a variety of transformation processes, including clamping of the second depth value into a given value, can be implemented with a reduced processing load in which only the transforming properties of the lookup table are changed.

[0050] In the game system, information storage medium or program of the present invention, bits M to N in the depth value may be set as an index number in a first lookup table for index color texture-mapping; the depth value may be transformed into a third depth value by performing index color texture-mapping on a virtual object by using the first lookup table; bits K to L (where K≧I≧L≧M≧J≧N) in the depth value may be set as an index number in a second lookup table for index color texture-mapping; the depth value may be transformed into a fourth depth value by performing index color texture-mapping on a virtual object by using the second lookup table; and the third and fourth depth values maybe used to determine the second depth value.

[0051] In such a manner, if there is a restriction by which only a train of bits within a given range of the depth value (e.g., 0 to 7, 8 to 15, 16 to 23 or 24 to 31 bits) can be fetched, the second depth value formed of any bits between I and J in the depth value can be obtained. Thus, the effective number of steps of the threshold values of the depth value for partitioning the alpha value can be increased to improve the quality of generated images.

[0052] In the game system, information storage medium or program of the present invention, the defocused image of the original image may be generated by setting the original image as a texture and shifting texture coordinates of a virtual object when the texture is mapped onto the virtual object by texel interpolation method.

[0053] In this configuration, a simplified process in which an original image is mapped on a virtual object by the texel interpolation method while shifting the texture coordinates can be used to defocus the original image.

[0054] The texel interpolation method is not limited to particular processes, but it is a process to obtain image information of a pixel by interpolating image information of a texel, and there is bilinear filtering or trilinear filtering, for example.

[0055] A virtual object may be primitive surfaces such an polygons or the like, or may be a three-dimensional object. Although it is desirable that the virtual object is not displayed on a screen, it may be displayed on the screen.

[0056] When a defocused image is generated by texture mapping using texel interpolation method, it is desirable that the texture coordinates are shifted by a value smaller than one texel. After texture mapping using texel interpolation method is performed by shifting the texture coordinates in a direction of a first shift, texture mapping using texel interpolation method may be carried out again by shifting the texture coordinates in a direction of a second shift, Alternatively, a set of shifting in directions of a first shift and a second shift may be repeated several times.

[0057] The present invention further provides a game system which generates a game image for a domestic game, comprising: means which sets an adjustment data for adjusting display properties of a monitor based on operational data inputted by a player through a game controller; save means which saves the set adjustment data in a saved information storage device for storing personal data of the player; and means which performs transformation processing on image information of an original image based on the adjustment data obtained by adjusting the display properties or loaded from the saved information storage device. The present invention further provides a computer-usable information storage medium comprising a program for a computer to realize the above means. The present invention further provides a computer-usable program (including a program embodied in a carrier wave) comprising a processing routine for a computer to realize the above-described means.

[0058] According to the present invention, a player can use a game controller to set adjustment data for adjusting display properties of monitor (such as brightness, color density, tone or sharpness). Thus, the convenience for the player can be improved since it is not required that the player directly controls the monitor. The set adjustment data is saved in a saved information storage device, and image information of an original image is transformed based on the adjustment data obtained by adjusting the display properties or loaded from the saved information storage device. Consequently, a game image can be displayed with optimum display properties for a game played by the player. Moreover, if a player views an image from other image source, a bad influence due to adjusted display properties of monitor can be prevented.

[0059] In the game system, information storage medium or program of the present invention, data of a control point of a free-form curve representing transformation properties of the image information may be saved in the saved information storage device as the adjustment data by the save means.

[0060] In this way, the capacity of the saved information storage device can be saved and saved capacity can be used for any other application.

BRIEF DESCRIPTION OF THE DRAWINGS

[0061]FIGS. 1A and 1B illustrate first and second techniques for implementing gamma correction.

[0062]FIG. 2 is a block diagram of a game system according to this embodiment.

[0063]FIG. 3 illustrates the index color texture-mapping process.

[0064]FIG. 4 illustrates a technique of effectively using the index color texture-mapping LUT to transform an original image.

[0065]FIGS. 5A and 5B exemplify game images generated according to this embodiment.

[0066]FIG. 6 illustrates a technique of dividing the original image into a plurality of blocks and texture mapping an image for each block onto the corresponding polygon having a size equal to that of each block using the LUT.

[0067]FIGS. 7A and 7B exemplify the transformation property of the gamma correction and a gamma correction lookup table.

[0068]FIGS. 8A and 8B exemplify the transformation property of the negative/positive inversion and a negative/positive inversion lookup table.

[0069]FIGS. 9A, 9B and 9C exemplify the transformation properties of posterization, solarization and binarization.

[0070]FIGS. 10A and 10B exemplify monotone (sepia) filtering LUTR and LUTG.

[0071]FIG. 11 exemplifies a monotone (sepia) filtering LUTB.

[0072]FIG. 12 illustrates a technique of obtaining a transformed image for the original image by masking other color components when a particular color component is set as an index number.

[0073]FIG. 13 illustrates a technique of blending color information obtained from LUTR, LUTG and LUTB to provide a transformed image for the original image.

[0074]FIG. 14 illustrates a technique of preparing an alpha (α)-plane by performing the texture mapping using the LUT.

[0075]FIG. 15 illustrates a technique of setting Z value at an index number in the LUT.

[0076]FIG. 16 illustrates a technique of setting an alpha value depending on the Z value and using the set alpha value to blend the original image with a defocused image.

[0077]FIGS. 17A and 17B exemplify an original image and its defocused image.

[0078]FIG. 18 illustrates a technique of setting an alpha value depending on the Z value.

[0079]FIGS. 19A, 19B and 19C illustrate a technique of updating an alpha value of a deeper pixel from a virtual object by drawing the virtual object.

[0080]FIG. 20 illustrates a technique of blending an original image with its defocused image by transforming Z value into Z2 value and also transforming the Z2 value into an alpha value.

[0081]FIG. 21 illustrates a problem occurred when the Z2 value is formed by the high-order bits of the Z value including its most-significant bit.

[0082]FIG. 22 illustrates a technique of forming the Z2 value by the bits I to J lower than the most-significant bit of the Z value while clamping the Z2 value at a given value.

[0083]FIG. 23 illustrates a technique of transforming Z value into Z2 value using LUT.

[0084]FIG. 24 shows an example of LUT1 for transforming the bits 15-8 in the Z value.

[0085]FIG. 25 shows an example of LUT2 for transforming the bits 23-16 in the Z value.

[0086]FIGS. 26A and 26B show an example of LUT3 for transforming a Z2 value into an alpha value and also exemplify the characteristic curve in that transformation.

[0087]FIG. 27 illustrates a clamping process.

[0088]FIG. 28 illustrates a bilinear filtering type texture mapping process.

[0089]FIG. 29 illustrates a technique of effectively using the bilinear filtering mode to generate a defocused image.

[0090]FIG. 30 also illustrates a technique of effectively using the bilinear filtering mode to generate a defocused image.

[0091]FIGS. 31A and 31B illustrate the principle of generating a defocused image through the bilinear filtering type interpolation.

[0092]FIGS. 32A and 32B also illustrate the principle of generating a defocused image through the bilinear filtering type interpolation.

[0093]FIG. 33 illustrates a problem in the prior art relating to the adjustment of brightness in a monitor.

[0094]FIG. 34 illustrates a technique of saving the data of the adjusted brightness in the monitor in a saved information storage device.

[0095]FIG. 35 is a flowchart illustrating the details of the process according to this embodiment.

[0096]FIG. 36 is a flowchart illustrating the details of the process according to this embodiment.

[0097]FIG. 37 is a flowchart illustrating the details or the process according to this embodiment.

[0098]FIG. 38 is a flowchart illustrating the details of the process according to this embodiment.

[0099]FIG. 39 is a flowchart illustrating the details of the process according to this embodiment.

[0100]FIG. 40 shows a structure of hardware by which this embodiment can be realized.

[0101]FIGS. 41A, 41B and 41C show various system forms to which this embodiment can be applied.

BEST MODE FOR CARRYING OUT THE INVENTION

[0102] Preferred embodiments of the present invention will now be described in connection with the drawings.

[0103] 1. Configuration

[0104]FIG. 2 shows a block diagram of a game system (or image generating system) according to this embodiment. In this figure, this embodiment may comprise at least a processing section 100. Each of the other blocks may take any suitable form.

[0105] The processing section 100 performs processing for control of the entire system, commands to the respective blocks in the system, game processing, image processing, sound processing and so on. The function thereof may be realized through any suitable hardware means such as various processors (CPU, DSP and so on) or ASIC (gate array or the like) or a given program (or game program).

[0106] An operating section 160 is used to input operational data from the player and the function thereof may be realized through any suitable hardware means such as a lever, a button, a housing or the like.

[0107] A storage section 170 provides a working area for the processing section 100, communication section 196 and others. The function thereof may be realized by any suitable hardware means such as RAM or the like.

[0108] An information storage medium (which may be a computer-usable storage medium) 180 is designed to store information including programs, data and others. The function thereof may be realized through any suitable hardware means such as optical memory disk (CD or DVD), magneto-optical disk (MO), magnetic disk, hard disk, magnetic tape, memory (ROM) or the like. The processing section 100 performs processing in the present invention (or this embodiment) based on the information that has been stored in this information storage medium 180. In other words, the information storage medium 180 stores various pieces of information (programs or data) for causing a computer to realizing the means of the present invention (or this embodiment) which are particularly represented by the blocks included in the processing section 100.

[0109] Part or the whole of the information stored in the information storage medium 180 will be transferred to the storage section 170 when the system is initially powered on. The information stored in the information storage medium 180 may contain at least one of program code set for processing the present invention, image data, sound data, shape data of objects to be displayed, table data, list data, information for instructing the processing in the present invention. information for performing the processing according to these instructions and so on.

[0110] A display section 190 is to output an image generated according to this embodiment and the function thereof can be realized by any suitable hardware means such as CRT, LCD or HMD (Head-Mount Display).

[0111] A sound output section 192 is to output a sound generated according to this embodiment and the function thereof can be realized by any suitable hardware means such as loudspeaker.

[0112] A saved information storage device (or portable information storage device) 194 stores the player's personal data (or data to be saved) and may take any suitable form such as memory card, portable game machine and so on.

[0113] A communication section 196 performs various controls for communication between the game system and any external device (e.g., host machine or other game system). The function thereof may be realized through any suitable hardware means such as various types of processors or communication ASIS or according to any suitable program.

[0114] The program or data for executing the means in the present invention (or this embodiment) may be delivered from an information storage medium included in a host machine (or server) to the information storage medium 180 through a network and the communication section 196. The use of such an information storage medium in the hose device (or server) falls within the scope of the invention.

[0115] The processing section 100 further comprises a game processing section 110, an image generation section 130 and a sound generation section 150.

[0116] The game processing section 110 performs processing such as coin (or charge) reception, setting of various modes, game proceeding, setting of screen selection, determination of the position and rotation angle (about X-, Y- or Z-axis) of an object (or one or more primitive surfaces), movement of the object (motion processing), determination of the view point (or virtual camera' position) and visual-line angle (or rotational virtual camera angle), arrangement of the object within the object space, hit checking, computation of the game results (or scores), processing for causing a plurality of players to play in a common game space, various game computations including game-over and other processes, based on operational data from the operating section 160 and according to the personal data and game program from the portable information storage device 194.

[0117] The image generation section 130 performs image processing according to the commands or the like from the game processing section 110. For example, the image generation section 130 may generate an image within an object space as viewed from a virtual camera (or viewpoint), which image is in turn outputted toward the display section 190. The sound generation section 150 performs sound processing according to the commands and the like from the game processing section 110 for generating BGMs, sound effects, voices or the like which are in turn outputted toward the sound output section 192.

[0118] All the functions of the game processing section 110 and the image and sound generation sections 130, 150 may be realized by any suitable hardware means or according to the program. Alternatively, these functions may be realized by both the hardware means and program.

[0119] The game processing section 110 further comprises a movement/action computation section 112, a adjustment information setting section 114 and a saving section 116.

[0120] The movement/action computation section 112 is to calculate the information of movement for objects such as motorcars and so on (positional and rotation angle data) and the information of action for the objects (positional and rotation angle data relating to the parts in the objects). For example, the movement/action computation section 112 may cause the objects to move and act based on the operational data inputted by the player through the operating section 160 and according to the game program.

[0121] More particularly, the movement/action computation section 112 may determine the position and rotational angle of the object, for example, for each one frame ({fraction (1/60)} seconds). For example, it is now assumed that the position of the object for (k-1) frame is PMk-1, the velocity is VMk-1, the acceleration is Amk-1, time for one frame is Δt. Thus, the position PMk and velocity VMk of the object for k frame can be determined by the following formulas (1) and (2):

PMk=PMk-1+VMk-1×Δt  (1)

VMk=VMk-1+Amk-1×Δt  (2)

[0122] The adjustment information setting section 114 is to set (or prepare) an adjustment data used for adjusting the display property of the display section (or monitor) 190 such as brightness, color density, color tone, sharpness or the like, based on the operational data inputted by the player through the operating section (or game controller) 160.

[0123] The saving section 116 is to save the adjustment data set by the adjustment information setting section 114 (or data used for adjusting the brightness, color density, color tone, sharpness or the like) in the saved information storage device 194.

[0124] In this embodiment, the transformation relative to the image information of the original image is performed based on the adjustment data which is obtained by adjusting the display property or loaded from the saved information storage device is 194. In this case, such a transformation will be realized by the function of an index-number setting section 134 or drawing section 140 (or texture mapping section 142 ), all of which will be described later.

[0125] The image generation section 130 comprises a geometry-processing section 132, an index-number setting section 134 and a drawing section 140.

[0126] The geometry-processing section 132 performs geometry-processing (or three-dimensional computation) such as coordinates transformation, clipping, perspective transformation, light-source calculation and so on. After subjected to the geometry-processing (or perspective transformation), the object data (such as shape data including the vertex coordinates and others in the object, or vertex texture coordinates, brightness data and the like) is saved in a main storage region (or main memory) 172 in the storage section 170.

[0127] The index-number setting section 134 is to set the image information of the original image (e.g., perspective-transformed image information) as an index number in an LUT (lookup table) section 178 for an index color texture-mapping. The image information of the original image may take any of various information forms such as color information (RGB, YUV or the like), an alpha (α) value (or any information stored in association with each of the pixels, other than the color information), a depth value (Z value) and so on.

[0128] In this embodiment, an alpha value for each pixel in the original image is set at a value corresponding to the depth value for that pixel by performing the index color texture-mapping relative to the virtual object using the lookup table in which the depth value for each pixel in the original image has been set as an index number. Thus, a so-called depth of field can be represented according to this embodiment.

[0129] Relationship between a depth value (index number) and an alpha value for each pixel in the LUT is preferably set such that a pixel which is located farther from the focus of the virtual camera has a larger alpha value (or has a higher blending rate for a defocused image in a broad sense). In addition, the depth of field or defocusing effect may variably be controlled by changing the relationship between a depth value and an alpha value for each pixel in the LUT.

[0130] The drawing section 140 is to draw the geometry-processed object (or model) in a drawing region 174 (which is a region in a frame buffer, an additional buffer or the like for storing the image information by a pixel unit). The drawing section 140 comprises a texture mapping section 142, an alpha (α)-blending section 144, a hidden surface removal section 146 and a masking section 148.

[0131] The texture mapping section 142 performs a process of mapping a texture stored in the texture storage section 176 onto an object (including a process of specifying a texture to be mapped on an object, a process of transferring a texture and other processes). In such a case, the texture mapping section 142 can perform the texture mapping using the index color texture-mapping LUT (lookup table) stored in the LUT storage section 178.

[0132] In this embodiment, the texture mapping section 142 performs the texture mapping relative to the virtual object (such as a polygon having a size equal to that of the display screen, a polygon having a size equal to that of a block of divided screen and the like) using the LUT in which image information of an original image is set as an index number. Thus, a process of transforming a depth value (Z value) into N bits, a process of transforming a depth value into an alpha value and other image transformation processing (e.g., video filtering such as gamma correction, negative/positive inversion, posterization, solarization, binarization, monotone filtering and sepia filtering) can be realized with reduced processing load.

[0133] In addition, this embodiment implements the generation of a defocused image (or most-defocused image) blended with the original image through the alpha blending (such as narrow-sensed alpha blending, additive alpha blending, subtractive alpha blending, or translucency processing) by effectively utilizing texture mapping by texel interpolation method (bilinear or trilinear filtering).

[0134] More particularly, the texture mapping section 142 maps the original image set as a texture on the virtual object (which is an object having its shape equal to that of the defocused region) through the texel interpolation method while, for example, shifting the texture coordinates by a value smaller than one pixel (texel) (or shifting it from the texture coordinates obtained based on the drawn position of the original image). Thus, the defocused image to be blended with the original image can be generated through a simplified procedure by which the texture coordinates are only shifted.

[0135] The alpha-blending section 144 is to blend (combine) an original image with its defocused image based on an alpha value (A value) which has been set for each of the pixels in the drawing region 174 (a frame buffer, an additional buffer or the like). For example, when narrow-sensed alpha blending is performed, the original image is blended with the defocused image as represented by the following formulas:

R ₀=(1−α)×R ₁ +α×R ₂  (3)

G ₀=(1−α)×G ₁ +α×G ₂  (4)

B ₀=(1−α)×B ₁ +α×B ₂  (5)

[0136] where R₁, G₁and B₁, are respectively color (or brightness) R, G and B components in the original image already drawn in the drawing region 174; R₂, G₂, and B₂ are respectively color R, G and B components in the defocused image; and R₀, G₀ and B₀, are respectively R, G and B components generated through the alpha blending.

[0137] The alpha-blending section 144 performs processing (such as additive alpha blending or alpha blending) for blending; transformed color information (R, G and B) obtained by setting the K-th color component (e.g., R component) in the original image as an index number in LUT; transformed color information obtained by setting the L-th color component (e.g., G component) as an index number in LUT; and transformed color information obtained by setting the M-th color component (e.g., B component) as an index number in LUT.

[0138] The hidden surface removal section 146 performs the hidden-surface removal according to Z-buffer algorithm, using a Z buffer (e.g., depth buffer or Z plane) 179 in which the Z value (depth value) is stored. In this embodiment, the Z value written in this Z buffer 179 is transformed into an alpha value on which the original image is blended with the defocused image.

[0139] The masking section 148 performs the masking such that when the color information is to be transformed by setting the color component (e.g., R component) in the original image as an index number in the LUT, the other color components (e.g., G and B components) in the transformed color information will not be drawn in the drawing region (a frame buffer or an additional buffer). When the color information is to be transformed by setting the G component as an index number, the masking will be carried out relative to the R and B components. When the color information is to be transformed by setting the B component as an index number, the masking will be carried out relative to the R and G components.

[0140] The game system of this embodiment may be dedicated for a single-player mode in which only a single player can play the game or may have a multi-player mode in which a plurality of players can play the game.

[0141] If a plurality of players play the game, only a single terminal may be used to generate game images and sounds to be provided to all the players. Alternatively, a plurality of terminals interconnected through a network (transmission lien or communication line) may be used in the present invention.

[0142] 2. Features of this Embodiment

[0143] 2.1 Use of Index Color Texture-Mapping

[0144] As described, the first technique shown in FIG. 1A cannot essentially realize the gamma correction (or video filtering) since it requires an excessive processing load on CPU. Furthermore, the second technique shown in FIG. 1B cannot realize the gamma correction in the domestic game system, since it does not have such a gamma-correction circuit which is of dedicated hardware.

[0145] The inventor aimed at the presence of the lookup table, LUT, which was used in the index color texture-mapping.

[0146] More particularly, in the index color texture-mapping process, the index number rather than the actual color information (RGB) is stored in association with each texel in the texture as shown at A1 in FIG. 3, for saving the capacity of the texture storage section. The color information specified by the index number is also stored in the index color texture-mapping LUT (or color pallet), as shown at A2 in FIG. 3. When it is wanted to perform the texture mapping relative to an object, the LUT is referred to based on the index number for each texel in the texture to read the corresponding color information out of the LUT and to draw the read color information in the frame buffer.

[0147] The texture mapping in such an index color mode reduces the number of usable colors (e.g., 256 colors), compared with the texture mapping in the conventional modes using no LUT. However, the index color texture-mapping does not require the storage of the actual color information (e.g., 16-bit color information) in the texture storage section. This enables the capacity of the texture storage section to be greatly saved. This embodiment is characterized by using such an index color texture-mapping process in a form different from the conventional forms.

[0148] As shown at B1 in FIG. 4, the image information (e.g., color information) of an original image drawn in a frame buffer (which is, in a broad sense, a drawing region) is first set as an index number in a gamma correction lookup table (LUT). In other words, this image information is considered as an index number. As shown at B2, the LUT in which the image information of the original image is set as an index number is then used to perform the index color texture mapping relative to a virtual object (e.g., a polygon having a size equal to that of the display screen) for transforming the image information of the original image. As shown at B3, the transformed image information is then drawn back to the frame buffer (or drawing region).

[0149] In such a manner, this embodiment successfully obtains such a gamma corrected image as shown in FIG. 5B from such an original image as shown in FIG. 5A. In other words, the image of FIG. 5B has a stronger contrast than the image of FIG. 5A.

[0150] For example, the first technique of FIG. 1A cannot increase its processing speed and can also increase its processing load on CPU since it must execute all the processes of reading the image information of the original image, referring to the gamma correction LUT and writing the color information back to the frame buffer in the software running on the CPU.

[0151] On the contrary, this embodiment can realize the gamma correction by effectively using the index color texture mapping which is executed by the dedicated hardware drawing processor (or drawing section) with increased speed. According to this embodiment, therefore, the gamma correction can be executed at a speed higher than that of the first technique shown in FIG. 1A. It becomes easier that the gamma correction for the entire display screen is completed within one frame (e-g., {fraction (1/60)} seconds or {fraction (1/30)} seconds).

[0152] Since the index color texture mapping can be executed by the drawing processor operable independently of the main processor (CPU), the increase in the processing load on the main processor (CPU) can be minimized. As a result, the gamma correction will not adversely affect any other processing.

[0153] The conventional game systems could not very increase the capacity of the drawing processor. It was thus difficult that the drawing of the original image into the frame buffer as well as the drawing of the polygon having a size equal to that of the display screen are completed within one frame.

[0154] However, the game systems have been capable of using a drawing processor having its very high fill rate (or the number of texels renderable for one second) since the capacity of the drawing processor was highly improved in comparison with the capacities of the other circuit blocks. Therefore, the drawing of the original image into the frame buffer as well as the drawing of the polygon having a size equal to that of the display screen can easily be completed within one frame. Thus, the gamma correction can freely be realized by effectively using the index color texture-mapping.

[0155] In addition, the second technique of FIG. 1B leads to increase of the game system manufacturing cost since it separately requires a gamma-correction circuit which is of a dedicated hardware. The domestic game systems not originally having such a gamma-correction circuit could not realize the second technique shown in FIG. 1B and but take the technique of FIG. 1A.

[0156] On the contrary, this embodiment realizes the gamma correction by effectively using the index color texture-mapping which is executed by the hardware originally possessed by the drawing processor. According to this embodiment, therefore, it is not required that such a gamma-correction circuit as shown in FIG. 1B is newly provided with the cost of the game system being minimized. Even in the domestic game system not originally having any gamma-correction circuit, the gamma correction can be realized through hardware with increased speed.

[0157] Although FIG. 4 has been described to realize the gamma correction (or video filtering) by performing the texture-mapping on a polygon having a size equal to that of a display screen, the texture mapping may be executed on a polygon having a size equal to a size of a lock obtained by dividing the display screen into blocks.

[0158] In other words, as shown at C1 in FIG. 6, the original image (or display screen) on the frame buffer is divided into blocks, each of which has an image to be texture mapped onto a polygon having a size equal to the size thereof using the LUT, as shown at C2. The resulting image having a size equal to that of the corresponding block is then drawn back to the frame buffer (or drawing region).

[0159] Alternatively, there may be generated such a polygon that includes all or part of an object image perspective-transformed (or transformed into the screen coordinate system) and has its magnitude variable depending on that of the perspective-transformed object. The texture mapping will then be executed relative to such a polygon.

[0160] In such a manner, if a texture-mapped polygon is temporarily drawn in the additional buffer, for example, the area of VRAM occupied by the additional buffer can be reduced.

[0161] When the texture mapping is performed on a polygon having a size equal to that of the display screen as shown in FIG. 4, an additional buffer having a size equal to that of the display screen must be allocated on VRAM for temporarily drawing the polygon having a size equal to that of the display screen. This may adversely affect any other processing.

[0162] If the texture mapping is performed on a polygon having a size equal to a size of a block of divided screen as shown in FIG. 6, it is only required that an additional buffer having a size equal to a size of the block is provided on VRAM. Therefore, the area occupied by the additional buffer can be reduced. As a result, the limited hardware resource can effectively be utilized.

[0163] 2.2 Various Types of Video Filtering (LUT)

[0164]FIG. 7A shows the transformation property of the gamma correction.

[0165] In this figure, Bezier curve (which is, in a broad sense, free-surface curve) representing the transformation property of the gamma correction is specified by four control points CP0, CP1, CP2 and CP3. In such a case, Y-coordinate of CP0 is set at Y0=0 while Y-coordinate of CP3 is set at Y3=255. The transformation property of the gamma correction can be adjusted by variably changing Y1 and Y2 which are Y-coordinates of CP1 and CP2, respectively.

[0166] The relational expression between input and output values X. Y in the gamma correction may be represented, for example, by the following formulas:

Y=Y 20+(X/255)×(Y 21=Y 20)  (3)

where

Y 20=Y 10+(X/255)×(Y 11−Y 10)

Y 21=Y 11+(X/255)×(Y 12−Y 11)

Y 10=Y 0+(X/255)×(Y 1−Y 0)

Y 11=Y 1+(X/255)×(Y 2−Y 1)

Y 12=Y 2+(X/255)×(Y 3−Y 2)

[0167] When an index number is set at the input value X in the above formula (3) and when outputs ROUT, GOUT and BOUT for the respective color components are set at the output value Y, such a gamma correcting LUT as shown in FIG. 7B is provided. This LUT is then transferred to VRAM and used to perform the index color texture-mapping as described in connection with FIG. 4 or other figure. Thus, there can be obtained an image which is formed by performing the video filtering of the gamma correction relative to the original image.

[0168] According to this embodiment, various types of video filtering other than the gamma correction may be realized relative to the original image on the frame buffer.

[0169]FIG. 8A shows the transformation property of a negative/positive inversion video filtering. The relational expression between input and output values X, Y in the negative/positive inversion may be represented by the following formula:

Y=255−X  (4)

[0170] When an index number is set at the input value X in the above formula and when outputs ROUT, GOUT and BOUT for the respective color components are set at the output value Y, such a negative/positive inversion LUT as shown in FIG. 8B is provided. The resulting LUT is then used to perform the index color texture-mapping described in connection with FIG. 4 for obtaining the original image to which the negative/positive inversion video filtering is carried out.

[0171]FIG. 9A shows the transformation property of a posterization video filtering for representing a multi-gradation image while restricting some gradations. The relational expression between input and output values X, Y in the posterization may be represented by the following formula:

Y={INT(X/VAL)}×VAL  (5)

[0172] where INT (R) is a function for rounding down the decimal point in R to provide an integer; and VAL is any value.

[0173]FIG. 9B shows the transformation property of a solarization video filtering for providing such an image effect that the inclination of a curve function between input and output values is inverted at a point. Moreover, FIG. 9C shows the transformation property of a binarizing video filtering for realizing the high-contrast effect in an image.

[0174] This embodiment may further realize monotone video filtering or sepia video filtering.

[0175] When color components prior to the monotone filtering are respectively RIN, GIN and BIN and when the color components after the monotone filtering are respectively ROUT, GOUT and BOUT, the transformation of the monotone filtering may be represented by the following formulas:

ROUT=0.299×RIN+0.587×GIN+0.114×BIN  (6)

GOUT=0.299×RIN+0.587×GIN+0.114×BIN  (7)

ROUT=0.299×RIN+0.587×GIN+0.114×BIN  (8)

[0176] The following formulas (9), (10) and (11) are defined herein as the relational expression between output values (ROUTR, GOUTR, BOUTR) relative to the input value RIN, the relational expression between output values (ROUTG, GOUTG, BOUTG) relative to the input value GIN and the relational expression between output values (ROUTB, GOUTB, BOUTB) relative to the input value BIN, respectively. $\begin{matrix} {\left( {{ROUTR},{GOUTR},{BOUTR}} \right) = \left( {{0.299 \times {RIN}},{0.299 \times {RIN}},{0.299 \times {RIN}}} \right)} & (9) \\ {\left( {{ROUTG},{GOUTG},{BOUTG}} \right) = \left( {{0.587 \times {GIN}},{0.587 \times {GIN}},{0.587 \times {GIN}}} \right)} & (10) \\ {\left( {{ROUTB},{GOUTB},{BOUTB}} \right) = \left( {{0.114 \times {BIN}},{0.114 \times {BIN}},{0.114 \times {BIN}}} \right)} & (11) \end{matrix}$

[0177] Based on the above formulas (9), (10) and (11), such monotone filtering lookup tables LUTR, LUTG and LUTB as shown respectively in FIGS. 10A, 10B and 11 are provided. These lookup tables LUTR, LUTG and LUTB are then used to perform the index color texture-mapping for obtaining the original image to which the monotone filtering is applied.

[0178] For the sepia filtering, the transformation thereof may be represented by the following formulas:

ROUT=0.299×RIN+0.587×GIN+0.114×BIN+6  (12)

GOUT=0.299×RIN+0.587×GIN+0.114×BIN−3  (13)

BOUT=0.299×RIN+0.587×GIN+0.114×BIN−3  (14)

[0179] However, the clamping shall be carried out such that:

0≦(ROUT, GOUT, BOUT)≦255

[0180] With the sepia filtering, the following formulas may be defined. $\begin{matrix} {\left( {{ROUTR},{GOUTR},{BOUTR}} \right) = \left( {{{0.299 \times {RIN}} + 2},{{0.299 \times {RIN}} - 1},{{0.299 \times {RIN}} - 1}} \right)} & (15) \\ {\left( {{ROUTG},{GOUTG},{BOUTG}} \right) = \left( {{{0.587 \times {GIN}} + 2},{{0.587 \times {GIN}} - 1},{{0.587 \times {GIN}} - 1}} \right)} & (16) \\ {\left( {{ROUTB},{GOUTB},{BOUTB}} \right) = \left( {{{0.114 \times {BIN}} + 2},{{0.114 \times {BIN}} - 1},{{0.114 \times {BIN}} - 1}} \right)} & (17) \end{matrix}$

[0181] Based on the above formulas (15), (16) and (17), sepia filtering lookup tables LUTR, LUTG and LUTB are provided. These lookup tables LUTR, LUTG and LUTB are then used to perform the index color texture-mapping for obtaining the original image to which the sepia filtering is applied.

[0182] 2.3 Masking

[0183] The gamma correction requires such an LUT that outputs one value (ROUT, GOUT or BOUT) relating to one input value (RIN, GIN or BIN).

[0184] However, the index color texture mapping LUT as shown in FIG. 3 is not designed for gamma correction and will thus output a plurality of values (e.g., ROUT, GOUT and BOUT) relating to one input value (index number). There is thus a problem in that the mismatching for this LUT should be overcome.

[0185] If the image information of the original image (e.g., R, G, B, Z value or alpha value) is to be set at an index number in the LUT, this embodiment performs a masking process in which only the necessary image information among the transformed image information is drawn in a drawing region (a frame buffer or an additional buffer) such that the other image information will not be drawn. If the image information of the original image is color information and when one color component in the original image is set at an index number in the LUT, the masking process is carried out such that the other color components after transformed will not be drawn in the drawing region.

[0186] More particularly, when an LUT in which the R plane value in the original image is set as an index number is used to perform the texture mapping as shown at D1 in FIG. 12, three plane values, R(ROUT), G(GOUT) and B(BOUT), will be outputted. In such a case, as shown at D2, only the outputted R plane values are drawn and the other G and B plane values will not be drawn in the drawing region through the masking process.

[0187] When the texture mapping was carried out after the G plane value in the original image had been set as an index number as shown at D3 in FIG. 12, only the outputted G plane value is drawn in the drawing region such that the other R and B plane values will not be drawn in the drawing region through the masking process, as shown at D4.

[0188] When the texture mapping was carried out after the B plane value in the original image had been set as an index number as shown at D5 in FIG. 12, only the outputted B plane value is drawn in the drawing region such that the other R and G plane values will not be drawn in the drawing region through the masking process.

[0189] In such a manner, the index color texture-mapping LUT not originally designed for gamma correction can be used to execute the transformation of the original image, with reduced processing load.

[0190] 2.4 Blending

[0191] The masking technique described in connection with FIG. 12 is also useful for any of various types of video filtering other than the gamma correction, such as negative/positive inversion, posterization, solarization, binarization and so on which have been described in connection with FIGS. 8A to 9C.

[0192] On the contrary, it is desirable to take the following technique if it is wanted to realize the monotone or sepia video filtering. This technique is to blend the color information (R, G, B) obtained by setting the R component in the original image as an index number in the LUT, the color information (R, G, B) obtained by setting the G component as an index number in the LUT and the color information (R, G, B) obtained by setting the B component as an index number in the LUT.

[0193] More particularly, as shown at E1 in FIG. 13, three plane values, R(ROUTR), G(GOUTR) and B(BOUTR) as shown at E2 are obtained by setting the R (RIN) plane value in the original image as an index number and using such an LUT as shown in FIG. 10A for texture mapping. In this case, the relational expression between RIN and (ROUTR, GOUTR, BOUTR) may be represented by the above formula (9) or (15).

[0194] When the G (GIN) plane value in the original image is set at an index number and the LUTG of FIG. 10B is used to perform the texture mapping as shown at E3 in FIG. 13, three plane values, R(ROUTG), G(GOUTG) and B(BOUTG) as shown at E4 are obtained. In such a case, the relational expression between GIN and (ROUTG, GOUTG, BOUTG) may be represented by the above formula (10) or (16).

[0195] When the B (BIN) plane value in the original image is set at an index number and the LUTG of FIG. 11 is used to perform the texture mapping as shown at E5 in FIG. 13, three plane values, R(ROUTB), G(GOUTB) and B(BOUTB) as shown at E6 are obtained. In such a case, the relational expression between BIN and (ROUTB, GOUTB, BOUTB) may be represented by the above formula (11) or (17).

[0196] Furthermore, as shown at E7 in FIG. 13, the color information of R(ROUTR), G(GOUTR) and B(BOUTR) shown at E2, the color information of R(ROUTG), G(GOUTG) and B(BOUTG) shown at E4 and the color information of R(ROUTB), G(GOUTB) and B(BOUTB) shown at E6 are blended (or added) together.

[0197] In such a manner, the monotone or sepia video filtering can be realized as shown by the above transformation formulas (6), (7) and (8) or (12), (13) and (14).

[0198] 2.5 Application for Z Value and Alpha Value

[0199] Use of the color information R, G and B outputted based on the index color texture-mapping LUT has been described.

[0200] However, the alpha value (that is A-value information other than the color information set in association with the pixels) outputted based on the index color texture-mapping LUT may be used.

[0201] For example, as shown in FIG. 14, the R (or G or B) plane value may be set as an index number in the LUT which is in turn used to perform the texture mapping for generating an alpha (or α OUT) plane. The resulting alpha plane may be used to perform the masking process or the like.

[0202] More particularly, an LUT is used in which an alpha value is set such that an alpha value (or an α OUT) becomes zero when an R value is 0 to 127 and that an alpha value becomes 255 when an R value is 128 to 255. The masking process will not be performed relative to a pixel having its alpha value smaller than 255 and will be carried out relative to a pixel having its alpha value equal to 255. Thus, the masking process will be performed only relative to pixel having their R values equal or larger than 128. As a result, the masking process may be carried out depending the magnitude of R value in each pixel.

[0203] The generated alpha plane value may be used as an alpha blending coefficient (transparency, translucency or opacity).

[0204] The image information set as an index number in the LUT is not limited to color information and may be one that is on the drawing region (VRAM) and can set as an index number in the LUT.

[0205] For example, as shown in FIG. 15, the Z value (or depth value) may be set as an index number in the LUT.

[0206] In such a case, the alpha plane value obtained by performing the index color texture-mapping after the Z value has been set as an index number may be used as an alpha blending coefficient, for example. Thus, an alpha value can be set depending on the Z value so that the depth of field or the like can be represented by using a defocused image.

[0207] More particularly, such an LUT as shown in FIG. 15 is used to perform the texture-mapping such that alpha values αA, αB, αC and αD for pixels A, B, C and D in an original image are set at values corresponding to Z values ZA, ZB, ZC and ZD for the respecting pixels A, B, C and D, as shown at F1 in FIG. 16. Thus, for example, such an alpha plane as shown at F2 in FIG. 16 may be generated. More particularly, an alpha value will be set to be increased as that a pixel corresponding to that an alpha value is farther from the focus of the virtual camera 10 (gazing point) (or a pixel has a larger difference between its Z value and the Z value of the focus). Thus, the rate of blending the original image with its defocused image increases as the pixel thereof is spaced farther apart from the focus of the virtual camera 10.

[0208] Next, as shown at F3 in FIG. 16, alpha blending of the original and its defocused images is carried out based on the generated alpha plane (an alpha value set for each pixel). FIG. 17A shows an original image while FIG. 17B shows its defocused image.

[0209] By performing alpha blending of the original image (FIG. 17A) and its defocused image (FIG. 17B) based on the alpha values set depending on the Z values (or depth values) in such a manner, for example, an image can be generated in which the degree of defocusing therein will be increased as the pixels thereof are spaced further apart from the focus of the virtual camera (that is, a focused point). This enables a so-called depth of field to be represented. Thus, unlike a conventional game image in which all objects in a screen are focused, this embodiment can generate a more realistic and natural image focused depending on the distance from a viewpoint like a real view. As a result, the player's feel for virtual reality can highly be improved.

[0210]FIG. 18 exemplifies the setting of an alpha value depending on a Z value. In this figure, the alpha value is normalized to have its magnitude equal to or less than 1.0.

[0211] In FIG. 18, the area is partitioned into regions AR0-AR4 and AR1′ to AR4′ depending on Z values Z1 to Z4 and Z1′ to Z4′ (threshold values). Alpha values α0 to α4 and α1′ to α4′ are set relative to these regions AR0 to AR4 and AR1′ to AR4′.

[0212] For example, a pixel located in the region AR1 between Z1 and Z2 may be set at α1; a pixel located in the region AR2 between Z2 and Z3 may be set at α2; a pixel located in the region AR1′ between Z1′ and Z2′ may be set at α1′; and a pixel located in the region AR2′ between Z2′ and Z3′ may be set at α2′.

[0213] The alpha values for the respective regions may be represented by the following relational expressions:

α0<α1<α2<α3<α4  (18)

α0<α1′<α2′<α3′<α4′  (19)

[0214] As will be apparent from these formulas, the alpha value is increased as the pixel is located farther from the focus of the virtual camera 10 (or gazing point). In other words, the alpha value is so set that the rate of blending between the original image and its defocused image is increased as the pixel has a larger difference between its Z value and the Z value of the focus of the virtual camera 10.

[0215] By so setting the alpha value, a more defocused image can be generated as the pixel is located further apart from the focus of the virtual camera. This enables a so-called depth of field to be represented.

[0216] And yet, this embodiment is advantageous in that the processing load thereof is highly reduced since the Z value for each pixel can be transformed into the alpha value through only a single texture mapping using the LUT.

[0217] One of the alpha value setting techniques not using the LUT may be considered to be such a technique as shown in FIGS. 19A, 19B and 19C.

[0218] As shown in FIG. 19A, the alpha value of a deeper pixel from a virtual object OB1 (or polygon) having its Z value set as Z1 is updated by drawing it in a frame buffer. In other words, the alpha value of the deeper pixel from the object OB1 is updated by effectively using the hidden-surface removal based on the Z value.

[0219] Next, as shown in FIG. 19B, the alpha value for a deeper pixel from a virtual object OB2 having its Z value set at Z2 is updated by drawing it in the frame buffer. Similarly, as shown in FIG. 19C, the alpha value for a deeper pixel from a virtual object OB3 having its Z value set at Z3 is updated by drawing it in the frame buffer.

[0220] In such a manner, the alpha value of a pixel in the area AR1 can be set as α1; the alpha value of a pixel in the area AR2 can be set as α2; and the alpha value of a pixel in the area AR3 can be set as α3. In other words, the alpha value for each pixel can be set at a value corresponding to the Z value thereof.

[0221] However, this technique requires that the virtual object drawing process is repeated times corresponding to the number of threshold steps for Z value. For example, in FIG. 18, the drawing process should be repeated eight times. This is disadvantageous in that the drawing load is increased. On the contrary, if the number of threshold steps is reduced to relieve the drawing load, the boundary between the threshold Z values will be viewed as a stripe on the display screen, leading to reduction of the image quality.

[0222] According to the technique of this embodiment in which the Z value is transformed into the alpha value using the LUT, the Z values for all the pixels can be simultaneously be transformed into alpha values at a time. If the index number (entry) in the LUT is of 8 bits, the alpha values partitioned by 256 threshold Z value steps can be obtained. It can be prevented that the boundary between the threshold Z values will be viewed as a stripe on the display screen. Therefore, a high-quality image can be generated with reduced processing load.

[0223] 2.6 Formation of 8-bit Z Value

[0224] To improve the accuracy of the hidden-surface removal in the game system, the number of bits in the Z value is very large, such as 24 bits or 32 bits.

[0225] On the other hand, the number of bits in the index number (entry) of the index color texture-mapping LUT is smaller than that of the Z value, such as 8 bits.

[0226] Where the Z value is to be transformed into the alpha value using such an index color texture-mapping LUT as shown in FIG. 15, therefore, a pre-process in which the Z value is transformed into a Z value having the same number of bits as that of the LUT index number is required. If the number of bits in the LUT index number is 8 bits, the Z value must be transformed into Z2 value (or second depth value) of 8 bits.

[0227] In this case, to obtain a consistent Z2 value, upper eight bits including the most-significant bit in the Z value must be used to form the Z2 value. In FIG. 20, eight bits ranging between bit 23 (or most-significant bit) and bit 16 is selected and used to form the Z2 value.

[0228] It has been found, however, that if the upper bits ranging between bit 23 and bit 16 in the Z value are used to form the Z2 value which is in turn transformed into the alpha value using the LUT, the number of partitions for alpha values will be reduced.

[0229] As shown in FIG. 21, for example, it is assumed that the Z value is of 4 bits and that the upper two bits of the Z value are selected and used to form the Z2 value. In this case, if the Z2 values are transformed into alpha values, the alpha values will be partitioned into four steps by threshold values within all the range of Z=0 to 15.

[0230] However, an object in front of a screen SC (perspective-transformed screen) as shown at OB1 in FIG. 21 will usually be near-clipped. If an object located in a range of Z=10 to 15 in FIG. 21 is near-clipped, for example, it becomes rare that the most-significant bit in the Z value becomes one (1). In any event, the object as OB2 located near the screen SC is not required that its degree of defocusing is accurately controlled since it will necessarily be formed to be the most defocused image. Therefore, two steps of partitioning the portion as shown by G1 in FIG. 21 are unnecessary.

[0231] To avoid such a situation, this embodiment transforms the Z value (depth value) for each pixel in an original image into a Z2 value (second depth value) formed by lower bits I to J (e.g., bits 19 to 12 ) than the most-significant bit of the Z value. This Z2 value is set as an index number in the index color texture-mapping LUT and then performs the texture mapping for determining the alpha value for each pixel. Based on the determined alpha value for each pixel, alpha blending is performed on the original image and its defocused image.

[0232] In such a manner, as shown in FIG. 22, the degree of defocusing can accurately be controlled by using the alpha values which are partitioned with the multi-step thresholds (four steps in FIG. 22) only relating to some objects (e.g., OB3 and OB4 ) that are located near the focus of the virtual camera 10 (or gazing point). Thus, the quality of the generated image can be improved.

[0233] In this embodiment, the Z2 value may be clamped at a given value depending on the bit values other than the Z value bits I to J. More particularly, as shown in FIG. 22, the Z2 value may be clamped at the maximum value (which is, in a broad sense, a given value) when the upper bit in the Z value becomes one (1), for example. Thus, the Z2 value will be set maximum for any object which is not required to control its degree of defocusing accurately, such as OB1 or 0B2. A consistent image can be generated even though the Z value has been transferred into the Z2 value formed by its bits I to J.

[0234] 2.7 Transformation of Z Value Using LUT

[0235] This embodiment realizes the process of transforming the Z value described in connection with FIG. 20 into the Z2 value (transformation into 8-bit form) by using the index color texture-mapping LUT for the texture mapping. In other words, the Z value is transformed into the Z2 value by setting the Z value as an index number in an LUT and using that LUT to perform the index color texture-mapping relative to a virtual object.

[0236] It is now assumed that a 24-bit Z value is transformed into a Z2 value using an LUT as shown in FIG. 23. In this case, as shown at H1 in FIG. 23, bits 15 to 8 (or M to N) in the Z value are set as index numbers in a first lookup table LUT1 which is in turn used to perform the index color texture-mapping for transforming the Z value into Z3 value (or third depth value).

[0237] Next, as shown at H2 in FIG. 23, bits 23 to 16 (or K to L) in the Z value are set as index numbers in a second lookup table LUT2 which is in turn used to perform the index color texture-mapping for transforming the Z value into Z4 value (or fourth depth value).

[0238] Finally, as shown at H4 in FIG. 23, these Z3 and Z4 values are used to determine Z2 value which is in turn transformed into alpha value by using a third lookup table LUT3 as shown at H5.

[0239] More particularly, the Z3 value obtained by the transformation of LUT1 is drawn in a drawing region (a frame buffer or an additional buffer). Thereafter, the Z4 value obtained by the transformation of LUT2 is drawn in the drawing region. At this time, the Z2 value is determined while the lower four bits (or effective bits) in the Z3 value are masked so that these bits will not be overwritten by the Z4 value.

[0240] The technique of FIG. 23 enables any 8 bits (which are, in a broad sense, I to J) in the Z value to be fetched.

[0241] If it is wanted to fetch 8 bits in the Z value for setting them as index numbers in the LUT, only 8 bits in the Z value within a predetermined range, such as bits 23 to 16, 15 to 8 or 7 to 0, may be fetched.

[0242] On the other hand, the type of 8 bits to be fetched in the Z value is determined depending on the range of near-clipping or the focus position of the virtual camera (or gazing point), as described in connection with FIGS. 20 and 21.

[0243] If only 8 bits of the Z value within a predetermined range, such as bits 23 to 16, 15 to 8 or 7 to 0, can be fetched, an appropriate alpha value for most accurately controlling the degree of defocusing near the focus of the virtual camera cannot be provided.

[0244] For example, it is now assumed that if bits 19 to 12 in the Z value are fetched as Z2 value, the effective number of partitions of the alpha value (or the number of threshold values of the Z value) can be stepped into 256. In such a case, if only bits 23 to 16 or 15 to 8 in the Z value can be fetched, the effective number of partitions in the alpha value will be stepped in to only 16, leading to reduction of the image quality.

[0245] On the contrary, if the technique of FIG. 23 is used, any bits I to J in the Z value can be fetched as Z2 value even though only 8 bits in the Z value within a predetermined range can be fetched as described above. Thus, the threshold values of the Z value for partitioning the alpha value can optimally be set depending on the range of near-clipping or the focus position of the virtual camera and an image with its improved quality can be generated.

[0246]FIGS. 24, 25 and 26A shows examples of LUT1, LUT2 and LUT3. FIG. 26B shows a curve of transformation property in the LUT3 for transforming Z2 value into alpha value.

[0247] As shown in FIG. 24, the LUT1 is used to shift bits 15 to 8 (or M to N) of the Z value inputted as index numbers rightward by four bits. For example, 0x10 and 0x20 (hexadecimal notation) may be transformed into 0x01 and 0x02, respectively.

[0248] As shown in FIG. 25, the LUT2 is used to shift bits 23 to 16 (or K to L) of the Z value inputted as index numbers leftward by four bits. For example, 0x01 and 0x02 may be transformed into 0x10 and 0x20, respectively.

[0249] If the inputted Z value is larger than 0x0F, the output of the LUT2 is clamped at 0xF0, as shown at Q1 in FIG. 25.

[0250] An example in which the Z value is clamped is shown in FIG. 27. Referring to FIG. 27, when bit 20 (or bit other than bits I to J) becomes one (1), the output of the LUT2 is clamped at 0xF0. Thus, Z2 value becomes 0xF1.

[0251] For example, if bits 19 to 12 in the Z value are directly fetched without clamping the output of the LUT2, the Z2 value will be 0x11, notwithstanding the bit 20 is one (1). This raises a problem in that the depth of field will wrongly be set.

[0252] The clamping of the LUT2 output can prevent such a problem and properly set the depth of field.

[0253] Moreover, the clamping of the LUT2 output will not provide any unnatural image since the degree of defocusing for the near-clipped object OB1 or the object OB2 located near the screen SC is only set maximum, as will be apparent from FIG. 22.

[0254] 2.8 Generation of Defocused Image

[0255] This embodiment effectively uses the bilinear filtering type (or texel interpolation type) texture mapping to generate the defocused image (FIG. 17B) to be blended with the original image (FIG. 17A).

[0256] There may be produced a positional deviation between a pixel and a texel in the texture mapping.

[0257] In such a case, the point sampling type texture mapping renders the color CP (which is, in a broad sense, image information) at a pixel P (or sampling point) the color CA at a texel TA nearest the point P, as shown in FIG. 28.

[0258] On the other hand, the bilinear filtering type texture mapping provides the color CP of the point P which are interpolated by the colors CA, CB, CC and CD of texels TA, TB, TC and TD surrounding the point P.

[0259] More particularly, coordinate ratio in X-axis direction β:1−β (0≦β≦1), and coordinate ratio in Y-axis direction γ:1−γ (0≦γ≦1) are determined based on the coordinates of TA to TD and P.

[0260] In this case, the color CP of the point P (or the output color in the bilinear filtering type texture mapping) may be represented by the following formula: $\begin{matrix} {{CP} = {{\left( {1 - \beta} \right) \times \left( {1 - \gamma} \right) \times {CA}} + {\beta \times \left( {1 - \gamma} \right) \times {CB}} + {\left( {1 - \beta} \right) \times \gamma \times {CC}} + {\beta \times \gamma \times {CD}}}} & (20) \end{matrix}$

[0261] This embodiment aims at the fact that the bilinear filtering type texture mapping automatically interpolates the colors, thereby generating a defocused image.

[0262] More particularly, as shown at R1 in FIG. 29, an original image drawn in a frame buffer may be set as a texture. When this texture (or original image) is to be mapped on a virtual object through the bilinear filtering type texture mapping process, texture coordinates given to the vertexes of the virtual object are shifted (dislocated or moved) rightward and downward, for example, by (0.5, 0.5). In such a manner, a defocused image in which the colors of the pixels in the original image spread into the surrounding pixels can automatically be generated through the bilinear filtering type interpolation.

[0263] If it is wanted to defocus the entire image, the shape of a virtual object onto which the texture (or original image) is mapped is set to be equal to the shape of a screen (or defocused region). For example, if the vertex coordinates of the screen are (X, Y)=(0.0), (640, 0), (640, 480), ( 0, 480), the vertex coordinates of the virtual object are also (X, Y)=(0, 0), (640, 0), (640, 480), (0, 480).

[0264] In this case, if texture coordinates (U, V) given to the vertexes VX1, VX2, VX3 and VX4 of the virtual object are respectively set at (0, 0), (640, 0), (640, 480), (0, 490), the positions of the pixels in the screen will be identical with the positions of the texels in the texture. Therefore, the image will not be defocused.

[0265] On the contrary, if texture coordinates (U, V) given to the vertexes VX1, VX2, VX3 and VX4 of the virtual object are respectively set at (0.5, 0.5), (640.5, 0.5), (640.5, 480.5), (0.5, 480.5), the positions of the pixels in the screen will not be identical with the positions of the texels in the texture. Thus, the color interpolation will be executed to provide a defocused image through the bilinear filtering type interpolation.

[0266] If it is wanted to defocus part of the screen, the shape of the virtual object may become equal to that of its defocused region.

[0267] As shown at R3 in FIG. 30, this embodiment a first defocused image by setting the original image as a texture and shifting it in the rightward and downward direction (first shift direction) by 0.5 for performing the bilinear filtering type texture mapping. Next, as shown at R4 in FIG. 30, the first defocused image is then set as another texture and shifted by 0.5 in the leftward and upward direction (second shift direction). The bilinear filtering type texture mapping is then executed to generate a second defocused image. Alternatively, the aforementioned procedure (or shifting in the rightward and downward direction and in the leftward and upward direction) may be repeated several times. Thus, a more natural and more defocused image can be generated.

[0268] The principle of generating the defocused image through the bilinear filtering type interpolation will be described below.

[0269] For example, it is now assumed as shown in FIG. 31A that the bilinear filtering type texture mapping is carried out after the texture coordinates are shifted by 0.5 texels in the rightward and downward direction. In this case, β=γ=½ in the above formula (20). Therefore, if the colors in texels T44, T45, T54 and T55 are respectively made C44, C45, C54 and C55, the color CP44 of a pixel P44 may be represented by the following formula:

CP 44=(C 44+C 45+C 54+C 55 )/4  (21)

[0270] As will be apparent from the foregoing, the color C44 of the texel T44 (which corresponds to the original color of the pixel P44 in the original image before transformation) will spread into the surrounding pixels P33, P34, P43 and P44 by each ¼ through the transformation shown in FIG. 31A.

[0271] Thereafter, as shown in FIG. 31B, the image obtained in FIG. 31A is set as a texture, the coordinates of which are then shifted by 0.5 in the leftward and upward direction for performing the bilinear filtering type texture mapping. In this case, the pixels P33, P34, P43 and P44 in FIG. 31A will correspond to the texels T33, T34, T43 and T44 in FIG. 31B. The color C44 spread into the P33, P34, P43 and P44 (T33, T34, T43 and T44) by each ¼ in FIG. 31A is then magnified further ¼ and will spread into the four surrounding pixels. Eventually, the original color C44 of T44 will spread into the surrounding area by {fraction (1/16)}=¼×¼.

[0272] Thus, the color C44 (which corresponds to the original color of the pixel P44 in the original image drawn in the frame buffer) will spread into the pixels P33, P34 and P35 respectively by {fraction (1/16)}, {fraction (2/16)} and {fraction (1/16)} through the transformations of FIGS. 31A and 31B. Furthermore, the color C44 will spread into the pixels P43, P44 and P45 respectively by {fraction (2/16)}, {fraction (4/16)} and {fraction (2/16)} and into the pixels P53, P54 and P55 respectively by {fraction (1/16)}, {fraction (2/16)} and {fraction (1/16)}.

[0273] As a result, such a plane filter as shown in FIG. 32A will be applied to the original image through the transformations of FIGS. 31A and 31B. Such a plane filter can uniformly spread the color of each pixel in the original image into the surrounding area. This can generate an ideal defocused image of the original image.

[0274] If the set of transformations in FIGS. 31A and 31B are repeated two times, such a plane filter as shown in FIG. 32B will be applied to the original image. Such a plane filter can generate a more ideal defocused image than that of FIG. 32A.

[0275] 2.9 Adjustment of Monitor Brightness

[0276] In a certain RPG or horror game in which a player controls a character on a screen to seek a dungeon, the brightness of the game image is usually set darkly for the purpose of causing the player to feel the dark atmosphere in the dungeon.

[0277] In such a case, if the brightness of the monitor on which the game image is displayed is set biased to the darkness, the contrast in the game image will become lower. This raises a problem in that the details of the shape or stripe in the dungeon will not clearly be looked or that a game image different from that intended by the game developer will be displayed.

[0278] To overcome such a problem, one technique may be considered in which a brightness adjustment button 22 on a monitor 20 is controlled directly by a player to adjust the brightness in the entire screen, as shown in FIG. 33.

[0279] However, such a technique is not convenient for the player since he or she must manually control the adjustment button 22 to adjust the brightness of the screen.

[0280] If the brightness of the monitor 20 has been adjusted for that game, the player must re-adjust the brightness for seeing any other image source (TV tuner, video or other game) after the previous game has been terminated.

[0281] Thus, this embodiment has such a purpose that a player can use a game controller 30 to set an adjustment data for adjusting the brightness of the monitor 20 (which is, in a broad sense, the displayed property), as shown in FIG. 34.

[0282] In FIG. 34, for example, the adjustment data may be set to increase the brightness on the entire screen when the player operates a cross key 32 on the game controller 30 to indicate the leftward direction and to decrease the brightness on the entire screen when the player operates a cross key 32 on the game controller 30 to indicate the rightward direction.

[0283] The set adjustment data is then saved in a saved information storage device 40 for storing the personal data (or saving data) of the player.

[0284] This embodiment performs the transformation relative to the image information of the original image based on the adjustment data which has been obtained by the adjustment of brightness (or displayed property) or loaded from the saved information storage device 40.

[0285] More particularly, the gamma-correction transformation property (FIG. 7A) is specified based on the adjustment data. This specified transformation property is then used to prepare the gamma correction LUT (FIG. 7B) which is in turn used to perform the transformation relative to the original image through such a technique as described in connection with FIG. 4 or other.

[0286] In such a manner, the player can adjust the brightness of the monitor 20 using the game controller 30 without operation of the brightness adjustment button 22.

[0287] The adjustment data stored in the saved information storage device 40 is only effective for the game at which the player has carried out such an adjustment. If the player is to see any other image source after the previous game has terminated, therefore, the brightness will not be required to be restored. If the previous game is to be again played, the brightness of the monitor 20 will be adjusted based on the adjustment data loaded from the saved information storage device 40. Therefore, the re-adjustment of the brightness is not required. The convenience for the player can highly be improved.

[0288] Since the capacity of the saved information storage device 40 is limited, it is desirable that the adjustment data to be saved is as small as possible.

[0289] When the adjustment data for specifying, for example, the transformation property of gamma correction is to be saved, it is desirable that the control point data in a Bezier curve for representing the transformation property of gamma correction (which is, in a broad sense, a free-surface curve) is saved in the saved information storage device 40. For example, Y coordinates for the control points CP0, CP1, CP2 and CP3 in FIG. 7A or only Y coordinates for the control points CP1 and CP2 may be saved. In such a manner, the storage capacity necessary to save the adjustment data can be saved with the remaining storage capacity being used for the other applications.

[0290] When the remaining storage capacity of the saved information storage device 40 is relatively large, all the contents of the gamma correction LUT shown in FIG. 7B may be saved in the saved information storage device 40.

[0291] 3. Process of This Embodiment

[0292] The details of the process of this embodiment will be described in connection with flowcharts shown in FIGS. 35 to 39.

[0293]FIG. 35 is a flowchart illustrating a process of this embodiment in which the technique of FIG. 12 is taken.

[0294] First of all, such a transformation LUT as shown in FIG. 7B has been transferred to VRAM (step S1).

[0295] Next, the R plane value in the original image on the frame buffer is set as an index number in the LUT, as described at D1 in FIG. 12. This LUT is then used to apply the texture mapping to a polygon having a size equal to that of the display screen. This polygon is then drawn in an additional buffer (step S2). At this time, the other G and B values have been masked, as described at D2 in FIG. 12.

[0296] Next, as described at D3 in FIG. 12, the G plane value in the original image on the frame buffer is set as an index number in the LUT which is in turn used to apply the texture mapping to a polygon having a size equal to that of the display screen. This polygon is then drawn in an additional buffer (step S3). At this time, the other R and B values have been masked as described at D4 in FIG. 12.

[0297] Next, as described at D5 in FIG. 12, the B plane value in the original image on the frame buffer is set as an index number in the LUT which is in turn used to apply the texture mapping to a polygon having a size equal to that of the display screen. This polygon is then drawn in an additional buffer (step S4). At this time, the other R and G values have been masked as described at D6 in FIG. 12.

[0298] Finally, the images drawn in the additional buffers are drawn in the frame buffer through the texture mapping or the like (step S5).

[0299]FIG. 36 is a flowchart illustrating a process of this embodiment which takes the technique of FIG. 13.

[0300] First of all, such LUTR, LUTG and LUTB as shown in FIGS. 10A, 10B and 11 are prepared and previously transferred to VRAM (step S10).

[0301] Next, as described at E1 in FIG. 13, the R plane value in the original image on the frame buffer is set as an index number in the LUTR. This LUTR is then used to apply the texture mapping to a polygon having a size equal to that of the display screen. This polygon is then drawn in a first additional buffer (step S11).

[0302] Next, as described at E3 in FIG. 13, the G plane value in the original image on the frame buffer is set as an index number in the LUTG which is in turn used to apply the texture mapping to a polygon having a size equal to that of the display screen. This polygon is then drawn in a second additional buffer (step S12).

[0303] Next, as described at E5 in FIG. 13, the B plane value in the original image on the frame buffer is set as an index number in the LUTB which is in turn used to apply the texture mapping to a polygon having a size equal to that of the display screen. This polygon is then drawn in a third additional buffer (step S13).

[0304] Next, the image drawn in the first additional buffer is drawn in the frame buffer (step S14). The image drawn in the second additional buffer is then additionally drawn in the frame buffer (additive alpha blending) (step S15). Finally, the image drawn in the third additional buffer is additionally drawn in the frame buffer (step S16).

[0305]FIGS. 37 and 38 show a flowchart for a process of transforming the Z value of the original image into alpha value which is in turn used to blend the original image with its defocused image (see FIG. 16).

[0306] First of all, the original image (or perspective-transformed image) is drawn in the frame buffer (step S21). At this time, Z value for each pixel will be written into the Z buffer.

[0307] Next, LUT1 (FIG. 24) for transforming bits 15 to 8 in the Z value of the Z buffer, LUT2 (FIG. 25) for transforming bits 23 to 16 and LUT3 (FIG. 26A) for transforming the Z value of 8-bit form into alpha value (A value) are transferred to VRAM (step S22).

[0308] Bits 15 to 8 in the Z value is set as an index number in the LUT1 which is in turn used to perform the texture mapping relative to a virtual polygon. This polygon is then drawn in an additional buffer (step S23).

[0309] Bits 23 to 16 in the Z value is set as an index number in the LUT2 which is in turn used to perform the texture mapping relative to a virtual polygon. This polygon is then drawn in an additional buffer (step S24). At this time, four lower bits (or data effective bits) in the Z value of 8-bit form have been masked for avoiding any overwriting.

[0310] Next, Z2 value of 8-bit form obtained at the step S24 is set as an index number in the LUT3 which is in turn used to perform the texture mapping relative to a virtual polygon. This polygon is drawn in the frame buffer (alpha plane) (step S25).

[0311] Next, the original image drawn in the work buffer at the step S21 is mapped on a virtual polygon through the bilinear filtering type interpolation while shifting the texture coordinates U and V by (0.5, 0.5). This virtual polygon is drawn in an additional buffer (step S26).

[0312] Next, the image drawn in the additional buffer at the step S26 is mapped on a virtual polygon through the bilinear filtering type interpolation while shifting the texture coordinates U, V by (−0.5, −0.5). This polygon is drawn in the frame buffer (step S27). At this time, the alpha blending is carried out by using the alpha value drawn in the frame buffer at the step S25 to blend the original image with its defocused image.

[0313] In such a manner, a so-called depth of field can be represented.

[0314]FIG. 39 is a flowchart for illustrating a process of adjusting the brightness as described in connection with FIG. 34.

[0315] First of all, it is judged whether or not the brightness adjustment data exists in a memory card (or saved information storage device) and also whether or not the brightness adjustment data is to be loaded (step S30). If it is judged that the adjustment data should be loaded, it will be loaded from the memory card (step S31).

[0316] If it is judged that the adjustment data should not be loaded, it is judged that the player has selected an option screen for the brightness adjustment (display screen of FIG. 34) (step S32). If not so, the brightness adjustment data is set at a previously provided initial value (step S33). On the other hand, if the player has selected the option screen, the brightness adjustment data is set (prepared) based on the operational data from the player as described in FIG. 34 (step S34). The set brightness adjustment data is then saved in the memory card (step S35).

[0317] Next, the game image is dynamically transformed for each frame, based on the resulting brightness adjustment data (initial adjustment data, set adjustment data or loaded adjustment data), through the technique as described in connection with FIG. 4 or other figure (step S36).

[0318] 4. Hardware Configuration

[0319] Hardware configuration for implementing this embodiment is shown in FIG. 40.

[0320] A main processor 900 operates to execute processing such as game processing, image processing, sound processing and other types of processing according to a program stored in a CD (information storage medium) 982, a program transferred through a communication interface 990 or a program stored in a ROM (information storage medium) 950.

[0321] A coprocessor 902 is to assist the processing of the main processor 900 and has a product-sum operator and analog divider which can perform high-speed parallel calculation to execute a matrix (or vector) calculation at high speed. If a physical simulation for causing an object to move or act (motion) requires the matrix calculation or the like, the program running on the main processor 900 instructs (or asks) that processing to the coprocessor 902.

[0322] A geometry processor 904 performs a geometry processing such as coordinate transformation, perspective transformation, light source calculation, curve formation or the like and has a product-sum operator and analog divider which can perform high-speed parallel calculation to execute a matrix (or vector) calculation at high speed. For example, for the coordinate transformation, perspective transformation or light source calculation, the program running on the main processor 900 instructs that processing to the geometry processor 904.

[0323] A data expanding processor 906 performs a decoding process for expanding image and sound compressed data or a process for accelerating the decoding process in the main processor 900. In the opening screen, intermission screen, ending screen or other game screen, thus, an MPEG compressed animation may be displayed. The image and sound data to be decoded may be stored in the storage devices including ROM 950 and CD 982 or may externally be transferred through the communication interface 990.

[0324] A drawing processor 910 is to draw or render an object constructed by primitive surfaces such as polygons or curved faces at high speed. On drawing the object, the main processor 900 uses a DNA controller 970 to deliver the object data to the drawing processor 910 and also to transfer a texture to a texture storage section 924, if necessary. Thus, the drawing processor 910 draws the object in a frame buffer 922 at high speed while performing a hidden-surface removal by the use of a Z-buffer or the like, based on the object data and texture. The drawing processor 910 can also perform alpha blending (or translucency processing), depth cueing, mip-mapping, fogging, bilinear filtering, trilinear filtering, anti-aliasing, shading and so on. As the image for one frame is written into the frame buffer 922, that image is displayed on a display 912.

[0325] A sound processor 930 includes any multi-channel ADPCM sound source or the like to generate high-quality game sounds such as BGMs, sound effects and voices. The generated game sounds are outputted from a speaker 932.

[0326] The operational data from a game controller 942, saved data from a memory card 944 and personal data may externally be transferred through a serial interface 940.

[0327] ROM 950 has stored a system program and so on. For an arcade game system, the ROM 950 functions as an information storage medium in which various programs have been stored. The ROM 950 may be replaced by any suitable hard disk.

[0328] RAM 960 is used as a working area for various processors.

[0329] DMA controller 970 is to control the DNA transfer between processors and memories (RAM, VRAM, ROM and so on).

[0330] CD controller 980 drives a CD (information storage medium) 982 in which the programs, image data or sound data have been stored and enables these programs and data to be accessed.

[0331] The communication interface 990 performs data transfer between the image generating system and any external instrument through a network. In such a case, the network connectable with the communication interface 990 may take any of communication lines (analog phone line or ISDN) or high-speed serial bus. The use of the communication line enables the data transfer to be performed through the internet. If the high-speed serial interface bus is used, the data transfer may be carried out between the other game systems.

[0332] All the means of the present invention may be realized (executed) only through hardware or only through a program which has been stored in an information storage medium or which is distributed through the communication interface. Alternatively, they may be executed both through the hardware and program.

[0333] If all the means of the present invention are executed both through the hardware and program, the information storage medium will have stored a program for realizing the respective means of the present invention through the hardware. More particularly, the aforementioned program instructs the respective processors 902, 904, 906, 910 and 930 which are hardware and also delivers the data to them, if necessary. Each of the processors 902, 904, 906, 910 and 930 will execute the corresponding one of the means of the present invention based on the instruction and delivered data.

[0334]FIG. 41A shows an arcade game system to which this embodiment is applied. Players enjoy a game by controlling levers 1102 and buttons 1104 while viewing a game images displayed on a display 1100. A system board (circuit board) 1106 included in the game system includes various processors and memories which are mounted thereon. An information (program or data) for realizing all the means of the present invention has been stored in a memory 1108 on the system board 1106, which is an information storage medium. Such information will be referred to “stored information” later.

[0335]FIG. 41B shows a domestic game system to which this embodiment is applied. A player enjoys a game by manipulating game controllers 1202 and 1204 while viewing a game picture displayed on a display 1200. In such a case, the aforementioned stored information pieces have been stored in DVD 1206 and memory cards 1208, 1209 which are detachable information storage media in the game system body.

[0336]FIG. 41C shows an example wherein this embodiment is applied to a game system which includes a host machine 1300 and terminals 1304-1 to 1304-n (game devices or portable telephones) connected to the host machine 1300 through a network (which is a small-scale network such as LAN or a global network such as INTERNET) 1302. In such a case, the above stored information pieces have been stored in an information storage medium 1306 such as magnetic disk device, magnetic tape device, semiconductor memory or the like which can be controlled by the host machine 1300, for example. If each of the terminals 1304-1 to 1304-n are designed to generate game images and game sounds in a stand-alone manner, the host machine 1300 delivers the game program and other data for generating game images and game sounds to the terminals 1304-1 to 1304-n. On the other hand, if the game images and sounds cannot be generated by the terminals in the stand-alone manner, the host machine 1300 will generate the game images and sounds which are in turn transmitted to the terminals 1304-1 to 1304-n.

[0337] In the arrangement of FIG. 41C, the means of the present invention may be decentralized into the host machine (or server) and terminals. The above information pieces for realizing the respective means of the present invention may be distributed and stored into the information storage media of the host machine (or server) and terminals.

[0338] Each of the terminals connected to the network may be either of home or arcade type. When the arcade game systems are connected to the network, it is desirable that each of the arcade game systems includes an saved information storage device (memory card or portable game machine) which can not only transmit the information between the arcade game systems but also transmit the information between the arcade game systems and the domestic game systems.

[0339] The present invention is not limited to the above-described embodiment, and various modifications can be made.

[0340] For example, part of the structural requirements in any of claims having dependent claims of the invention can be omitted. Primary part of an independent claim of the invention can be made dependent on any other independent claim.

[0341] The image information set as the index number in the index color texture-mapping lookup table is particularly desirable to be the information described in connection with this embodiment, but the present invention is not limited to such information.

[0342] The image transformation (or video filtering) realized by the present invention is not limited to those described in connection with FIGS. 7A to 11.

[0343] Although it is particularly desirable that the technique of transforming the image information in such a form as is to save the adjustment information in the saved information storage device is that described in connection with FIG. 4, the present invention is not limited to such a technique. The image information may be transformed through the techniques described in connection with FIGS. 1A and 1B, for example.

[0344] Although it is particularly desirable that the transformation of the depth value into the second depth value is realized through the technique of FIG. 23 using the index color texture-mapping lookup table, such a transformation may be realized through any other technique.

[0345] The transformation property of the lookup table used to transform the depth value is not limited to any of such transformation properties as shown in FIGS. 24, 25, 26A and 6B, but may be carried out in any of various other forms.

[0346] Although it is particularly desirable that the defocused is image to be blended with the original image is generated through the technique described in connection with FIGS. 29 and 30, the present invention is not limited to such a technique. For example, the defocused image may be generated by blending the original image with its shifting image or by blending an original image on the present frame with an original image on the previous frame.

[0347] The invention of generating the defocused image through the texel interpolation is not limited to the technique described in connection with FIGS. 29 to 32B. For example, an area smaller than a screen may be set in which an original image will be defocused, rather than defocusing of the entire screen.

[0348] Although this embodiment has been described as to the depth value increasing as the pixel thereof is spaced nearer away from the viewpoint, the depth value may be increased as the pixel thereof is spaced further away from the viewpoint.

[0349] The present invention may similarly be applied to any of various other games such as fighting games, shooting games, robot combat games, sports games, competitive games, roll-playing games, music playing games, dancing games and so on.

[0350] Furthermore, the present invention can be applied to various image generating systems such as arcade game systems, domestic game systems, large-scaled multi-player attraction systems, simulators, multimedia terminals, image generating systems, game image generating system boards and so on. 

1. A game system which generates an image, comprising: means which sets image information of an original image as an index number in a lookup table for index color texture-mapping; and means which transforms the image information of the original image by performing index color texture-mapping on a virtual object by using the lookup table in which the image information of the original image is set as the index number.
 2. The game system as defined in claim 1, wherein the virtual object is a polygon having a size equal to a size of a display screen.
 3. The game system as defined in claim 1, wherein the virtual object is a polygon having a size equal to a size of a block obtained by dividing a display screen into blocks.
 4. The game system as defined in claim 1, wherein the lookup table is used to perform gamma correction, negative/positive inversion, posterization, solarization, binarization monotone filtering or sepia filtering on the image information of the original image.
 5. The game system as defined in claim 1, wherein one of color components of color information in the image information of the original image is set as the index number in the lookup table for the transformation of the color information; and wherein the game system further comprises means which performs masking on other color components of the transformed color information to avoid being drawn in the drawing region.
 6. The game system as defined in claim 1, further comprising means which blends: transformed color information obtained by setting the K-th color component of the color information in the image information of the original image as the index number in the lookup table; transformed color information obtained by setting the L-th color component of the color information as the index number in the lookup table; and transformed color information obtained by setting the M-th color component of the color information as the index number in the lookup table.
 7. The game system as defined in claim 1, wherein an alpha value corresponding to the image information of the original image is generated by the transformation of the image information of the original image.
 8. The game system as defined in claim 1, wherein a depth value in the image information of the original image is set as the index number in the lookup table.
 9. A game system which generates an image, comprising: means which sets a depth value of each pixel of an original image as an index number in a lookup table for index color texture-mapping; means which sets an alpha value of each pixel to a value corresponding to the depth value of each pixel of the original image by performing index color texture-mapping on a virtual object by using the lookup table in which the depth value of each pixel of the original image is set as the index number; and means which blends the original image with a defocused image of the original image based on the alpha value of each pixel.
 10. The game system as defined in claim 9, wherein the depth value of each pixel of the original image is transformed into a second depth value formed of lower bits I to J which are positioned lower than the most significant bit of the depth value; and wherein the second depth value is set as the index number in the lookup table for index color texture-mapping.
 11. The game system as defined in claim 10, wherein the second depth value is clamped into a given value depending on a bit value other than the bits I to J in the depth value.
 12. The game system as defined in claim 10, wherein the depth value is set as an index number in a lookup table for index color texture-mapping; and wherein the depth value is transformed into the second depth value by performing index color texture-mapping on a virtual object by using the lookup table.
 13. The game system as defined in claim 10, wherein: bits M to N in the depth value are set as an index number in a first lookup table for index color texture-mapping; the depth value is transformed into a third depth value by performing index color texture-mapping on a virtual object by using the first lookup table; bits K to L (where K≧I≧L>M≧J≧N) in the depth value are set as an index number in a second lookup table for index color texture-mapping; the depth value is transformed into a fourth depth value by performing index color texture-mapping on a virtual object by using the second lookup table; and the third and fourth depth values are used to determine the second depth value.
 14. The game system as defined in claim 9, wherein the defocused image of the original image is generated by setting the original image as a texture and shifting texture coordinates of a virtual object when the texture is mapped onto the virtual object by texel interpolation method.
 15. The game system as defined in claim 9, wherein the virtual object is a polygon having a size equal to a size of a display screen.
 16. The game system as defined in claim 9, wherein the virtual object is a polygon having a size equal to a size of a block obtained by dividing a display screen into blocks.
 17. A game system which generates a game image for a domestic game, comprising: means which sets an adjustment data for adjusting display properties of a monitor based on operational data inputted by a player through a game controller; save means which saves the set adjustment data in a saved information storage device for storing personal data of the player; and means which performs transformation processing on image information of an original image based on the adjustment data obtained by adjusting the display properties or loaded from the saved information storage device.
 18. The game system as defined in claim 17, wherein data of a control point of a free-form curve representing transformation properties of the image information is saved in the saved information storage device as the adjustment data by the save means.
 19. A computer-usable program embodied on an information storage medium or in a carrier wave, the program comprising a processing routine for a computer to realize: means which sets image information of an original image as an index number in a lookup table for index color texture-mapping; and means which transforms the image information of the original image by performing index color texture-mapping on a virtual object by using the lookup table in which the image information of the original image is set as the index number.
 20. The program as defined in claim 19, wherein the virtual object is a polygon having a size equal to a size of a display screen.
 21. The program as defined in claim 19, wherein the virtual object is a polygon having a size equal to a size of a block obtained by dividing a display screen into blocks.
 22. The program as defined in claim 19, wherein the lookup table is used to perform gamma correction, negative/positive inversion, posterization, solarization, binarization, monotone filtering or sepia filtering on the image information of the original image.
 23. The program as defined in claim 19, wherein one of color components of color information in the image information of the original image is set as the index number in the lookup table for the transformation of the color information; and wherein the program further comprises a processing routine for a computer to realize means which performs masking on other color components of the transformed color information to avoid being drawn in the drawing region.
 24. The program as defined in claim 19, further comprising processing routine for a computer to realize means which blends: transformed color information obtained by setting the K-th color component of the color information in the image information of the original image as the index number in the lookup table; transformed color information obtained by setting the L-th color component of the color information as the index number in the lookup table; and transformed color information obtained by setting the M-th color component of the color information as the index number in the lookup table.
 25. The program as defined in claim 19, wherein an alpha value corresponding to the image information of the original image is generated by the transformation of the image information of the original image.
 26. The program as defined in claim 19, wherein a depth value in the image information of the original image is set as the index number in the lookup table.
 27. A computer-usable program embodied on an information storage medium or in a carrier wave, the program comprising a processing routine for a computer to realize: means which sets a depth value of each pixel of an original image as an index number in a lookup table for index color texture-mapping; means which sets an alpha value of each pixel to a value corresponding to the depth value of each pixel of the original image by performing index color texture-mapping on a virtual object by using the lookup table in which the depth value of each pixel of the original image is set as the index number; and means which blends the original image with a defocused image of the original image based on the alpha value of each pixel.
 28. The program as defined in claim 27, wherein the depth value of each pixel of the original image is transformed into a second depth value formed of lower bits I to J which are positioned lower than the most significant bit of the depth value; and wherein the second depth value is set as the index number in the lookup table for index color texture-mapping.
 29. The program as defined in claim 28, wherein the second depth value is clamped into a given value depending on a bit value other than the bits I to J in the depth value.
 30. The program as defined in claim 28, wherein the depth value is set as an index number in a lookup table for index color texture-mapping; and wherein the depth value is transformed into the second depth value by performing index color texture-mapping on a virtual object by using the lookup table.
 31. The program as defined in claim 28, wherein: bits M to N in the depth value are set as an index number in a first lookup table for index color texture-mapping; the depth value is transformed into a third depth value by performing index color texture-mapping on a virtual object by using the first lookup table; bits K to L (where K≧I≧L>M≧J≧N) in the depth value are set as an index number in a second lookup table for index color texture-mapping; the depth value is transformed into a fourth depth value by performing index color texture-mapping on a virtual object by using the second lookup table; and the third and fourth depth values are used to determine the second depth value.
 32. The program as defined in claim 27, wherein the defocused image of the original image is generated by setting the original image as a texture and shifting texture coordinates of a virtual object when the texture is mapped onto the virtual object by texel interpolation method.
 33. The program as defined in claim 27, wherein the virtual object is a polygon having a size equal to a size of a display screen.
 34. The program as defined in claim 27, wherein the virtual object is a polygon having a size equal to a size of a block obtained by dividing a display screen into blocks.
 35. A computer-usable program embodied on an information storage medium or in a carrier wave for generating a game image for a domestic game, the program comprising a processing routine for a computer to realize: means which sets an adjustment data for adjusting the display properties of a monitor based on operational data inputted by a player through a game controller; save means which saves the set adjustment data in a saved information storage device for storing personal data of the player; and means which performs transformation processing on image information of an original image based on the adjustment data obtained by adjusting the display properties or loaded from the saved information storage device.
 36. The program as defined in claim 35, wherein data of a control point of a free-form curve representing transformation properties of the image information is saved in the saved information storage device as the adjustment data by the save means.
 37. A method of generating an image, comprising a step of: setting image information of an original image as an index number in a lookup table for index color texture-mapping; and transforming the image information of the original image by performing index color texture-mapping on a virtual object by using the lookup table in which the image information of the original image is set as the index number.
 38. The method as defined in claim 37, wherein the virtual object is a polygon having a size equal to a size of a display screen.
 39. The method as defined in claim 37, wherein the virtual object is a polygon having a size equal to a size of a block obtained by dividing a display screen into blocks.
 40. The method as defined in claim 37, wherein the lookup table is used to perform gamma correction, negative/positive inversion, posterization, solarization, binarization, monotone filtering or sepia filtering on the image information of the original image.
 41. The method as defined in claim 37, wherein one of color components of color information in the image information of the original image is set as an index number in the lookup table for the transformation of the color information; and wherein masking is performed on other color components of the transformed color information to avoid being drawn in the drawing region.
 42. The method as defined in claim 37, further comprising a step of blending; transformed color information obtained by setting the K-th color component of the color information in the image information of the original image as the index number in the lookup table; transformed color information obtained by setting the L-th color component of the color information as the index number in the lookup table; and transformed color information obtained by setting the M-th color component of the color information as the index number in the lookup table.
 43. The method as defined in claim 37, wherein an alpha value corresponding to the image information of the original image is generated by the transformation of the image information of the original image.
 44. The method as defined in claim 37, wherein a depth value in the image information of the original image is set as the index number in the lookup table.
 45. A method of generating an image, comprising a step of: setting a depth value of each pixel of an original image as an index number in a lookup table for index color texture-mapping; setting an alpha value of each pixel to a value corresponding to the depth value of each pixel of the original image by performing index color texture-mapping on a virtual object by using the lookup table in which the depth value of each pixel of the original image is set as the index number; and blending the original image with a defocused image of the original image based on the alpha value of each pixel.
 46. The method as defined in claim 45, wherein the depth value of each pixel of the original image is transformed into a second depth value formed of lower bits I to J which are positioned lower than the most significant bit of the depth value; and wherein the second depth value is set as the index number in the lookup table for index color texture-mapping.
 47. The method as defined in claim 46, wherein the second depth value is clamped into a given value depending on a bit value other than the bits I to J in the depth value.
 48. The method as defined in claim 46, wherein the depth value is set as an index number in a lookup table for index color texture-mapping; and wherein the depth value is transformed into the second depth value by performing index color texture-mapping on a virtual object by using the lookup table.
 49. The method as defined in claim 46, wherein: bits M to N in the depth value are set as an index number in a first lookup table for index color texture-mapping; the depth value is transformed into a third depth value by performing index color texture-mapping on a virtual object by using the first lookup table; bits K to L (where K≧I≧L>M ≧J≧N) in the depth value are set as an index number in a second lookup table for index color texture-mapping; the depth value is transformed into a fourth depth value by performing index color texture-mapping on a virtual object by using the second lookup table; and the third and fourth depth values are used to determine the second depth value.
 50. The method as defined in claim 45, wherein the defocused image of the original image is generated by setting the original image as a texture and shifting texture coordinates of a virtual object when the texture is mapped onto the virtual object by texel interpolation method.
 51. The method as defined in claim 45, wherein the virtual object is a polygon having a size equal to a size of a display screen.
 52. The method as defined in claim 45, wherein the virtual object is a polygon having a size equal to a size of a block obtained by dividing a display screen into blocks.
 53. A method of generating a game image for a domestic game, comprising a step of: setting an adjustment data for adjusting display properties of a monitor based on operational data inputted by a player through a game controller; saving the set adjustment data in a saved information storage device for storing personal data of the player; and performing transformation processing on image information of an original image based on the adjustment data obtained by adjusting the display properties or loaded from the saved information storage device.
 54. The method as defined in claim 53, wherein data of a control point of a free-form curve representing transformation properties of the image information is saved in the saved information storage device as the adjustment data. 